A typical legacy data processing system includes firmware instructions that control the system when the system is being powered up or has been reset, before an operating system (OS) is booted. That is, the firmware controls the pre-OS operations (also known as “pre-boot” operations). Those pre-boot operations may include operations for discovering, testing, and initializing hardware within the data processing system, to prepare the system for subsequent tasks, such as loading the OS, executing applications, etc. The firmware that controls the pre-boot operations may be referred to in general as a basic input/output system (BIOS).
In personal computers (PCs) and other data processing systems, the BIOS typically includes a collection of computer instructions that may be used in a variety of platforms, as well as various modifiable settings that may be configured for an individual computer. The BIOS instructions and settings are typically saved in non-volatile storage. For instance, the BIOS instructions may be stored in read only memory (ROM), and the BIOS settings may be stored in non-volatile random access memory (NVRAM) or complementary metal-oxide semiconductor (CMOS) memory. For purposes of this disclosure, the term “ROM” may be used in general to refer to non-volatile memory devices such as electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), flash ROM, flash memory, etc.
A portion of the BIOS instructions may constitute a BIOS setup program. The BIOS setup program may provide a user interface that allows the user to modify the BIOS settings. In some data processing systems, however, it is very difficult to launch the BIOS setup program. For instance, some systems provide only a very narrow window of time in which the user is allowed to launch the BIOS setup program. Industry standards, certification requirements of OS vendors, or other constraints may dictate that the launching of an OS must begin in less than seven seconds, for example. Accordingly, a system may provide less then seven seconds during the pre-boot process to allow a user to launch the BIOS setup program, and once the pre-boot process is done, it may be impossible to launch the BIOS setup program without resetting the system to re-enter the pre-boot phase. Furthermore, a typical legacy data processing system does not provide a user-friendly mechanism for launching the BIOS setup program, such as a graphical user interface (GUI) or menu-based interface. Instead, the typical system requires the user to press a particular key or combination of keyboard keys at the proper time to launch the BIOS setup program.